package com.qiangesoft.im.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qiangesoft.im.entity.ImGroup;
import com.qiangesoft.im.pojo.dto.ImGroupDTO;
import com.qiangesoft.im.pojo.dto.ImGroupMasterDTO;
import com.qiangesoft.im.pojo.vo.ImGroupInfoVO;
import com.qiangesoft.im.pojo.vo.ImGroupVO;

import java.util.List;

/**
 * <p>
 * 群组 服务类
 * </p>
 *
 * @author qiangesoft
 * @date 2024-02-07
 */
public interface IImGroupService extends IService<ImGroup> {

    /**
     * 建群
     *
     * @param groupDTO
     */
    void addGroup(ImGroupDTO groupDTO);

    /**
     * 解散群
     *
     * @param id
     */
    void removeGroup(Long id);

    /**
     * 编辑群
     *
     * @param id
     * @param groupDTO
     */
    void updateGroup(Long id, ImGroupDTO groupDTO);

    /**
     * 群列表
     *
     * @param keyword
     * @return
     */
    List<ImGroupVO> listGroup(String keyword);

    /**
     * 群详情
     *
     * @param id
     * @return
     */
    ImGroupInfoVO getGroupInfo(Long id);

    /**
     * 变更群主
     *
     * @param groupMasterDTO
     */
    void updateMaster(ImGroupMasterDTO groupMasterDTO);

    /**
     * 校验群组
     *
     * @param id
     * @return
     */
    ImGroup validateGroup(Long id);
}
